package com.xmtlxx.tms.domain.bo;

import com.xmtlxx.common.core.domain.BaseEntity;
import com.xmtlxx.common.core.validate.AddGroup;
import com.xmtlxx.common.core.validate.EditGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;

/**
 * 司机业务对象 t_driver
 *
 * @author xmtlxx
 * @date 2022-08-15
 */

@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel("司机业务对象")
public class DriverBo extends BaseEntity {

    /**
     * 司机ID
     */
    @ApiModelProperty(value = "司机ID")
    private String id;

    /**
     * 承运商ID
     */
    @ApiModelProperty(value = "承运商ID", required = true)
    @NotBlank(message = "承运商ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private String carrierId;

    /**
     * 用户ID
     */
    @ApiModelProperty(value = "用户ID", required = true)
    @NotNull(message = "用户ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long userId;

    /**
     * 姓名
     */
    @ApiModelProperty(value = "姓名", required = true)
    @NotBlank(message = "姓名不能为空", groups = { AddGroup.class, EditGroup.class })
    private String personName;

    /**
     * 性别
     */
    @ApiModelProperty(value = "性别")
    private String sex;

    /**
     * 准驾车型
     */
    @ApiModelProperty(value = "准驾车型")
    private String vehicleClass;

    /**
     * 驾驶证号
     */
    @ApiModelProperty(value = "驾驶证号", required = true)
    @NotBlank(message = "驾驶证号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String driverCode;

    /**
     * 档案编号
     */
    @ApiModelProperty(value = "档案编号", required = true)
    @NotBlank(message = "档案编号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String fileNo;

    /**
     * 初次领证日期
     */
    @ApiModelProperty(value = "初次领证日期", required = true)
    @NotNull(message = "初次领证日期不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date receiveDateFirst;

    /**
     * 发证机关
     */
    @ApiModelProperty(value = "发证机关", required = true)
    @NotBlank(message = "发证机关不能为空", groups = { AddGroup.class, EditGroup.class })
    private String issuingOrganizations;

    /**
     * 驾照有效期起
     */
    @ApiModelProperty(value = "驾照有效期起", required = true)
    @NotNull(message = "驾照有效期起不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date validPeriodFrom;

    /**
     * 驾照有效期止
     */
    @ApiModelProperty(value = "驾照有效期止", required = true)
    @NotNull(message = "驾照有效期止不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date validPeriodTo;

    /**
     * 驾驶证图片
     */
    @ApiModelProperty(value = "驾驶证图片", required = true)
    @NotBlank(message = "驾驶证图片不能为空", groups = { AddGroup.class, EditGroup.class })
    private String driverImg;

    /**
     * 驾驶证副页图片
     */
    @ApiModelProperty(value = "驾驶证副页图片", required = true)
    @NotBlank(message = "驾驶证副页图片不能为空", groups = { AddGroup.class, EditGroup.class })
    private String driverSecondImg;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String remark;

    /**
     * 删除标识
     */
    @ApiModelProperty(value = "删除标识")
    private String delFlag;

    private String userName;
    private String password;

}
